<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=File-List href="./AppendixB_files/filelist.xml">
<title>Appendix B</title>
<style>
<!--
 /* Font Definitions */
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
@font-face
	{font-family:"Microsoft Sans Serif";
	panose-1:2 11 6 4 2 2 2 2 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1627421663 -2147483648 8 0 66047 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:windowtext;}
h1
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:1;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-font-kerning:0pt;
	mso-ansi-language:EN-GB;
	font-weight:normal;
	text-decoration:underline;
	text-underline:single;}
h2
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:normal;
	font-style:italic;
	mso-bidi-font-style:normal;}
h3
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:14.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:normal;}
h4
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:4;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:bold;
	mso-bidi-font-weight:normal;
	text-decoration:underline;
	text-underline:single;}
h5
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:5;
	font-size:14.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:bold;
	mso-bidi-font-weight:normal;
	text-decoration:underline;
	text-underline:single;}
h6
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	text-indent:.5in;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:6;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:normal;
	font-style:italic;
	mso-bidi-font-style:normal;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:7;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-style:italic;
	mso-bidi-font-style:normal;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:8;
	font-size:14.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	text-decoration:underline;
	text-underline:single;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
	{mso-style-next:Normal;
	margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:9;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;
	font-weight:bold;
	mso-bidi-font-weight:normal;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:11.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:22.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:33.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:44.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:55.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:66.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:77.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:88.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
	{mso-style-update:auto;
	mso-style-next:Normal;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:99.0pt;
	margin-bottom:.0001pt;
	text-indent:-11.0pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:center 207.65pt right 415.3pt;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:center 207.65pt right 415.3pt;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
	{mso-style-next:"Index 1";
	margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:6.0pt;
	margin-left:0in;
	text-align:center;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:15.5pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	font-weight:bold;}
span.MsoFootnoteReference
	{vertical-align:super;}
span.MsoEndnoteReference
	{vertical-align:super;}
p.MsoEndnoteText, li.MsoEndnoteText, div.MsoEndnoteText
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
	{margin:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:windowtext;
	font-weight:bold;
	mso-bidi-font-weight:normal;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
	{margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:13.5pt;
	margin-bottom:.0001pt;
	text-align:justify;
	text-indent:.65pt;
	mso-pagination:widow-orphan;
	mso-layout-grid-align:none;
	text-autospace:none;
	font-size:9.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
	{margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	border:none;
	mso-border-top-alt:solid windowtext 1.5pt;
	mso-border-bottom-alt:solid windowtext 1.5pt;
	padding:0in;
	mso-padding-alt:1.0pt 0in 1.0pt 0in;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyText3, li.MsoBodyText3, div.MsoBodyText3
	{margin:0in;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	font-size:9.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyTextIndent2, li.MsoBodyTextIndent2, div.MsoBodyTextIndent2
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:13.5pt;
	margin-bottom:.0001pt;
	text-align:justify;
	mso-pagination:widow-orphan;
	mso-layout-grid-align:none;
	text-autospace:none;
	font-size:9.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;
	mso-ansi-language:EN-GB;}
p.MsoBodyTextIndent3, li.MsoBodyTextIndent3, div.MsoBodyTextIndent3
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:9.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
p.MsoBlockText, li.MsoBlockText, div.MsoBlockText
	{margin-top:0in;
	margin-right:-.35pt;
	margin-bottom:0in;
	margin-left:3.5in;
	margin-bottom:.0001pt;
	text-align:justify;
	text-indent:-3.5in;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
a:link, span.MsoHyperlink
	{mso-style-parent:"";
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
strong
	{mso-bidi-font-weight:normal;}
em
	{mso-bidi-font-style:normal;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	background:navy;
	font-size:11.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:Tahoma;
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";
	color:black;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-bidi-font-family:"Times New Roman";
	color:windowtext;
	mso-ansi-language:EN-GB;}
p
	{margin-right:0in;
	mso-margin-top-alt:auto;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:black;}
code
	{mso-ascii-font-family:"Courier New";
	mso-fareast-font-family:"Courier New";
	mso-hansi-font-family:"Courier New";
	mso-bidi-font-family:"Courier New";}
span.Typewriter
	{mso-style-name:Typewriter;
	mso-style-parent:"";
	mso-ansi-font-size:10.0pt;
	mso-ascii-font-family:"Courier New";
	mso-hansi-font-family:"Courier New";}
span.l
	{mso-style-name:l;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1027"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]--><!--[if gte mso 9]><xml>
 <u1:DocumentProperties>
  <u1:Author> </u1:Author>
  <u1:Template>Normal</u1:Template>
  <u1:LastAuthor> </u1:LastAuthor>
  <u1:Revision>1</u1:Revision>
  <u1:TotalTime>1</u1:TotalTime>
  <u1:Created>2005-01-15T18:27:00Z</u1:Created>
  <u1:LastSaved>2005-01-15T18:28:00Z</u1:LastSaved>
  <u1:Pages>4</u1:Pages>
  <u1:Words>1061</u1:Words>
  <u1:Characters>6052</u1:Characters>
  <u1:Company> </u1:Company>
  <u1:Lines>50</u1:Lines>
  <u1:Paragraphs>12</u1:Paragraphs>
  <u1:CharactersWithSpaces>7432</u1:CharactersWithSpaces>
  <u1:Version>9.2720</u1:Version>
 </u1:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <u2:WordDocument>
  <u2:DisplayHorizontalDrawingGridEvery>0</u2:DisplayHorizontalDrawingGridEvery>
  <u2:DisplayVerticalDrawingGridEvery>0</u2:DisplayVerticalDrawingGridEvery>
  <u2:UseMarginsForDrawingGridOrigin/>
  <u2:Compatibility>
   <u2:FootnoteLayoutLikeWW8/>
   <u2:ShapeLayoutLikeWW8/>
   <u2:AlignTablesRowByRow/>
   <u2:ForgetLastTabAlignment/>
   <u2:LayoutRawTableWidth/>
   <u2:LayoutTableRowsApart/>
  </u2:Compatibility>
 </u2:WordDocument>
</xml><![endif]-->
</head>

<body bgcolor=silver lang=EN-US link=blue vlink=purple style='tab-interval:
.5in'>

<div class=Section1>

<div align=center>

<table border=0 cellpadding=0 width="80%" bgcolor=white style='width:80.0%;
 mso-cellspacing:1.5pt;background:white;mso-padding-alt:75.0pt 75.0pt 75.0pt 75.0pt'>
 <tr>
  <td style='padding:75.0pt 75.0pt 75.0pt 75.0pt'>
  <p class=MsoTitle align=left style='margin-left:1.0in;text-align:left'><span
  style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  font-weight:normal;mso-bidi-font-weight:bold'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <div align=center>
  <table border=0 cellspacing=0 cellpadding=0 width=432 style='width:4.5in;
   border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
   mso-padding-alt:0in 5.4pt 0in 5.4pt'>
   <tr>
    <td width=492 valign=top style='width:368.75pt;border:solid windowtext .5pt;
    padding:0in 5.4pt 0in 5.4pt'>
    <p class=MsoTitle align=left style='text-align:left'><span
    style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
    font-weight:normal;mso-bidi-font-weight:bold'><a href="QiPrograms.zip">Download
    Programs</a> <o:p></o:p></span></p>
    </td>
    <td width=492 valign=top style='width:368.75pt;border:solid windowtext .5pt;
    border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
    <p class=MsoTitle align=left style='text-align:left'><span
    style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
    font-weight:normal;mso-bidi-font-weight:bold'><a href="contents.htm">Go to
    Contents Page</a><o:p></o:p></span></p>
    </td>
   </tr>
  </table>
  </div>
  <p class=MsoTitle align=left style='margin-left:1.0in;text-align:left'><span
  style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  font-weight:normal;mso-bidi-font-weight:bold'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoTitle align=left style='margin-left:1.0in;text-align:left'><span
  style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  font-weight:normal;mso-bidi-font-weight:bold'>Note that this HTML page was
  generated from Word 2000.<span style="mso-spacerun: yes">&nbsp; </span>Some
  of the code cannot be pasted into Qi. You are advised to download the program
  files through the above link.<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-right:-.35pt;text-align:center;
  mso-outline-level:1'><span lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-right:-.35pt;text-align:center;
  mso-outline-level:1'><span lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>Appendix B<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-right:-.35pt;text-align:center'><span
  lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-right:-.35pt;text-align:center;
  mso-outline-level:1'><span lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>Installing and using Qi under Lisp</span><!--[if supportFields]><span
  lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'> XE &quot;</span><span lang=EN-GB
  style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt'><span lang=EN-GB
  style='font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Currently Qi runs under Clisp
  under the GNU licence</span><!--[if supportFields]><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>.<span style="mso-spacerun:
  yes">&nbsp; </span>There are binaries for Qi under Windows and the system
  includes source code for installing Qi under other Lisps and operating
  systems.<span style="mso-spacerun: yes">&nbsp; </span>The code size is just
  under 250K. The system is provided &#8220;as is&#8221; &#8211; without assuming any liability.
  To download, see the Lambda Associates web site<a name="_Hlt517270190"><span
  style="mso-spacerun: yes">&nbsp; </span></a><a href="http://www.simulys.com/"><span
  style='mso-bookmark:_Hlt517270190'>www.lambdassociates.org</span><span
  style='mso-bookmark:_Hlt517270190'></span></a><span style='mso-bookmark:_Hlt517270190'>.</span><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>You are free to change the sources
  as long as you do not remove the copyright notice on the source listings and
  the copyright notice that appears on starting up Qi.<span
  style="mso-spacerun: yes">&nbsp; </span>If you do change the source and plan
  to distribute it, then the <b>version </b>function must be used to change the
  version variable.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Using Lisp in
  a Qi Function Definition__________</span></u></b><span lang=EN-GB
  style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Qi is written in Lisp</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>, and it is very trivial to get Qi
  to communicate with the underlying Lisp. All Common Lisp system functions</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>system functions</span></b><span style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>are in uppercase;</span><span lang=EN-GB style='font-size:
  9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>REVERSE</span></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>, </span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>APPEND </span></b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>etc</span><span lang=EN-GB
  style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>.<span
  style="mso-spacerun: yes">&nbsp; </span></span><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>Here is an example:<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>(define print-reverse-list<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;&nbsp; </span>X -&gt; (PPRINT (reverse X)))<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>This function uses the Lisp
  pretty-printer and pretty-prints the reverse of the input.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Talking to
  Lisp</span></u></b><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><u><span lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span></u></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><u><span lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span></u></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style="mso-spacerun: yes">&nbsp;</span>via the Qi Top Level___________</span></u></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>The Qi reader</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><i style='mso-bidi-font-style:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>Qi</span></i><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'> reader</span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; \b </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>reads in input and converts it into Lisp, currying</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>currying</span></b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>and inserting quotes where necessary.<span
  style="mso-spacerun: yes">&nbsp;&nbsp; </span>Lisp system macros like DEFUN
  and DEFMACRO can be used in the top level.<span style="mso-spacerun:
  yes">&nbsp; </span>Here is an example.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>(1-)<span style="mso-spacerun:
  yes">&nbsp; </span>(DEFUN what (x) <o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>(COND ((EQ x 'yes) 'no) <o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:1.0in;margin-bottom:.0001pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>(T 'yes)))<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>what<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>(2-) (what yes)<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>no<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>Hence you <i>can</i> type Lisp definitions into the top level
  and mix Lisp with Qi in one file and load them together. Uppercase Lisp
  system functions (like REVERSE etc) can also be used at the top level.<span
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>Lisp system functions
  will not sustain currying the way Qi ones will, but by defining a Lisp
  function in Qi, you get currying for free.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>However it has to be said that
  since the Qi reader will tweak symbols like = (see appendix C) in order to
  preserve conformity with Qi function conventions, typing Lisp definitions to
  the top level is not the best way to go. Rather better is to use <b>LOAD</b>
  (note the uppercase) to load a Lisp file with the conventional Lisp reader
  syntax. Apart from case-sensitivity and the semi-colon, which is defined as a
  standard character in Qi, the conventions are standard Lisp.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>If you have a legacy system
  written in Common Lisp where you used the default case insensitive versions
  of Lisp, then the default meanings of <b>if </b>etc. will not obtain even if
  you LOAD the source into Qi. In this case you must edit the file.<span
  style="mso-spacerun: yes">&nbsp;&nbsp; </span>Smart Lisp programmers will
  write a short routine that uppercases the ifs etc. without changing function
  names.<span style="mso-spacerun: yes">&nbsp; </span>It is not a difficult
  assignment.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Generating
  and Loading Lisp</span></u></b><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><u><span lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span></u></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><u><span lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span></u></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style="mso-spacerun:
  yes">&nbsp;</span>Code____________________________________</span></u></b><span
  lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Qi is written in and is compatible
  with Lisp</span><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>code and any Qi program can be turned into a corresponding</span><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Lisp program by means of the <b
  style='mso-bidi-font-weight:normal'>dump</b> function in Qi.<span
  style="mso-spacerun: yes">&nbsp; </span>Given an Qi program in a text file
  (call it<b style='mso-bidi-font-weight:normal'> foo</b>), the command</span><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>(dump
  &quot;foo&quot;)</span></b><span lang=EN-GB style='font-size:9.0pt;
  mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'> </span><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>will load the Qi code in <b style='mso-bidi-font-weight:
  normal'>foo</b> into Qi and produce a file<b style='mso-bidi-font-weight:
  normal'> foo.lsp</b> with the equivalent Lisp program within it. <o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Communicating
  to the Lisp</span></u></b><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><u><span lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span></u></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><u><span lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span></u></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style="mso-spacerun:
  yes">&nbsp;</span>Compiler___________________________________</span></u></b><span
  lang=EN-GB style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Qi compile</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>compile</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>s into Lisp</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>with compiler settings set for maximum speed and minimum
  regard for memory usage.<span style="mso-spacerun: yes">&nbsp; </span>The Qi
  type-checker will also insert type declarations into the Lisp code using the
  Common Lisp compiler directives. Based on a study by Ma and Kessler (1990),
  these compiler directives will produce a speedup in the object code of
  between 16% and 75% with an average of 25%. A routine interprets the type
  information provided by the Qi type-checker and transforms that information
  into Common Lisp compiler directives.<span style="mso-spacerun: yes">&nbsp;
  </span>This routine depends on information correlating the types in Qi, with
  the types that Common Lisp recognises. This information is held in a global</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>global</span></b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>A-list</span><!--[if supportFields]><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>list</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style="mso-spacerun: yes">&nbsp;</span></span><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>qi::*assoctypes*.</span></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style="mso-spacerun: yes">&nbsp; </span></span><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>The full range</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;range&quot; </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>of Common Lisp types is given in <b style='mso-bidi-font-weight:
  normal'>Franz Inc</b></span><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-begin'></span></span></b><span style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'> XE &quot;</span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Franz Inc</span></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  \b </span><![endif]--><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>. </span></b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>(1988) and <b style='mso-bidi-font-weight:
  normal'>Steele</b></span><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-begin'></span></span></b><span style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'> XE &quot;</span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Steele</span></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  \b </span><![endif]--><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-end'></span></span></b><![endif]--><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style="mso-spacerun: yes">&nbsp;</span>(1990).
  The</span><span lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'> </span><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>qi::*assoctypes*</span></b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'> global has the following default
  value</span><!--[if supportFields]><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-begin'></span></span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'> XE &quot;</span><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>value</span></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  \b </span><![endif]--><!--[if supportFields]><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>[[list</span></b><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-begin'></span></span></b><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'> XE &quot;</span></b><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>list</span></b><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span></b><![endif]--><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style="mso-spacerun: yes">&nbsp;</span>LIST] [symbol SYMBOL] [character
  CHARACTER] <o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>[boolean</span></b><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-begin'></span></span></b><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'> XE &quot;</span></b><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>boolean</span></b><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span></b><![endif]--><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style="mso-spacerun: yes">&nbsp;</span>SYMBOL] [string STRING] [goal</span></b><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-begin'></span></span></b><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'> XE &quot;</span></b><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>goal</span></b><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span></b><![endif]--><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>s LIST]
  [number NUMBER]]<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Therefore, if we defined a
  datatype</span><span lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'> </span><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>foo</span></b><span lang=EN-GB
  style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>, </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>where a</span><span lang=EN-GB
  style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>foo</span></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>was a symbol of some kind, we
  could add</span><span lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'> </span><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>[foo SYMBOL]</span></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>to this list</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>list</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>. Caution should be exercised in
  changing</span><span lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'> </span><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>qi::*assoctypes*</span></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>, </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>since bad associations will cause
  dynamic type failure</span><!--[if supportFields]><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>failure</span></b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>s.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></u></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Enlarging and
  Shrinking Qi___________________________________________<o:p></o:p></span></u></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>contains hundreds of functions; in the interests of
  simplicity, Qi includes only the most basic. However armed with only knowledge
  of a little Lisp, you can build versions of Qi that are tailored to include
  whatever part of Lisp you desire. As a case example, we will consider
  enlarging Qi by adding logarithms.<span style="mso-spacerun: yes">&nbsp;
  </span>Common Lisp</span><span lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'> </span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>contains the
  system function</span><span lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:
  10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'> </span><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>LOG</span></b><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'> that calculates the log of X to the base Y; suppose
  we want to add this function to Qi. First, we construct a wrapper function <b
  style='mso-bidi-font-weight:normal'>log</b> that defines the Qi version of</span><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>log</span></b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'> in terms the Lisp</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>version<b style='mso-bidi-font-weight:normal'>.<o:p></o:p></b></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>(7-) (define
  log <o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>X Y -&gt; (LOG X Y))<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>log<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>We can calculate logarithms, but
  we cannot type-check functions using</span><span lang=EN-GB style='font-size:
  9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>log</span></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>because</span><span lang=EN-GB
  style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>log</span></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>is not part of</span><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Qi&#8217;s type system. We use the</span><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>newfuntype</span></b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'> function to enter log into Qi. <o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>(8-) (</span></b><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>newfuntype</span></b><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> log (number
  - -&gt; number - -&gt; number))<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>log<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>(9-) (tc +)<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>true<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>(10+) (log
  100.0 10.0)<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>2.0 : number<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Finally having built our new
  version of Qi, we want to give it a name and save it. The following commands
  do that.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>(11+) (tc -)<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>false<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>(12-)
  (version &quot;Logarithmic Version&quot;)<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>&quot;Logarithmic Version&quot;<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>(13-) (save)<span
  style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>The final command saves a new
  executable version of Qi. Your new version will appear with the prompt</span><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>Qi, Copyright &#8230;&#8230; Mark Tarver</span></b><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-begin'></span></span></b><b style='mso-bidi-font-weight:
  normal'><span style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'> XE &quot;Tarver&quot; </span></b><![endif]--><!--[if supportFields]><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-end'></span></span></b><![endif]--><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>Logarithmic Version<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>These techniques allow the
  construction of personalised versions of Qi that include powerful Lisp</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Lisp</span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>packages like LispStat, CLOS and CLIM. <o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Qi can be shrunk as well as
  enlarged. The function</span><span lang=EN-GB style='font-size:9.0pt;
  mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'> </span><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>destroy </span></b><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>followed by the function name will
  remove a function definition from</span><span lang=EN-GB style='font-size:
  9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'> </span><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>the environment</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>environment</span></b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>and remove its type from Qi&#8217;s type system. It is easy to
  create a pure functional subset of Qi in this way.<span style="mso-spacerun:
  yes">&nbsp; </span>Care must be exercised with <b style='mso-bidi-font-weight:
  normal'>destroy </b>for obvious reasons</span><span lang=EN-GB
  style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></u></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>The
  Qi_Readtable__________________________</span></u></b><span lang=EN-GB
  style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Qi changes the standard Lisp readtable
  only by making the semi-colon a standard character and by enabling
  case-sensitivity.<span style="mso-spacerun: yes">&nbsp; </span>In other cases
  the Qi<i style='mso-bidi-font-style:normal'> </i><span style='mso-bidi-font-style:
  italic'>uses its own </span>reader</span><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-begin'></span></span><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>
  XE &quot;</span><i style='mso-bidi-font-style:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>Qi</span></i><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'> reader</span><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; \b </span><![endif]--><!--[if supportFields]><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style='mso-element:field-end'></span></span><![endif]--><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><span style="mso-spacerun:
  yes">&nbsp;</span>which changes input according to the scheme in the next
  appendix.<span style="mso-spacerun: yes">&nbsp; </span><b style='mso-bidi-font-weight:
  normal'><o:p></o:p></b></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify'><b
  style='mso-bidi-font-weight:normal'><u><span lang=EN-GB style='font-size:
  14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>Macroexpansions__________________________</span></u></b><span
  lang=EN-GB style='font-size:9.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-right:-.35pt;text-align:center;
  mso-outline-level:1'><i style='mso-bidi-font-style:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></i></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>Qi was intended to be easily
  extended and modified by the expert programmer and <b style='mso-bidi-font-weight:
  normal'>macroexpansions</b></span><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-begin'></span></span></b><span style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'> XE &quot;</span><b
  style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>macroexpansions</span></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  \b </span><![endif]--><!--[if supportFields]><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'><span
  style='mso-element:field-end'></span></span></b><![endif]--><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'><span style="mso-spacerun: yes">&nbsp;</span>are a
  product of this approach.<span style="mso-spacerun: yes">&nbsp; </span>The
  system function <b style='mso-bidi-font-weight:normal'>macroexpand</b> is
  applied to all inputs typed to the top level and to every element of every
  file loaded into Qi.<span style="mso-spacerun: yes">&nbsp; </span>By default,
  <b style='mso-bidi-font-weight:normal'>macroexpand</b> is defined as the
  identity function.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoBodyText style='mso-outline-level:1'><span lang=EN-GB
  style='font-size:10.0pt;font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman"'>However the <b style='mso-bidi-font-weight:normal'>macroexpand
  </b>function can be redefined to allow the user to define her own shortcuts
  or notational styles.<span style="mso-spacerun: yes">&nbsp; </span>A simple
  macroexpansion can be written that enables arithmetic operations to be
  written in infix notation.<span style="mso-spacerun: yes">&nbsp;
  </span>Figure B 1. shows how this is done.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>(0-) (define macroexpand<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>[X Arith
  Y] <o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  </span>-&gt; [Arith (macroexpand X) (macroexpand Y)]<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:2.0in;margin-bottom:.0001pt;text-align:justify;text-indent:
  -1.0in;mso-outline-level:1'><b style='mso-bidi-font-weight:normal'><span
  lang=EN-GB style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:
  "Times New Roman";mso-ansi-language:EN-GB'>where (element? Arith [+ - * /])<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span
  style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>[X | Y]
  -&gt; (map macroexpand [X | Y])<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X -&gt; X)<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>macroexpand<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>(1-) (tc +)<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>true<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>(2+) (define factorial<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{number -
  -&gt; number}<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>0
  -&gt; 1<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><span style="mso-spacerun:
  yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>X
  -&gt; (X * (factorial (X - 1))))<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'>factorial : (number - -&gt; number)<o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-right:-.35pt;text-align:justify;mso-outline-level:
  1'><b style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal align=center style='margin-right:-.35pt;text-align:center;
  mso-outline-level:1'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>B 1.<b
  style='mso-bidi-font-weight:normal'><span style="mso-spacerun: yes">&nbsp;
  </span></b><i style='mso-bidi-font-style:normal'>Using a macroexpansion to
  introduce infix notation<o:p></o:p></i></span></p>
  <p class=MsoNormal align=center style='margin-top:0in;margin-right:-.35pt;
  margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt;text-align:center;
  mso-outline-level:1'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
  </td>
 </tr>
 <tr>
  <td style='padding:75.0pt 75.0pt 75.0pt 75.0pt'>
  <p class=MsoNormal align=center style='margin-right:-.35pt;text-align:center;
  mso-outline-level:1'><![if !supportEmptyParas]>&nbsp;<![endif]><span
  lang=EN-GB style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";mso-ansi-language:
  EN-GB'><o:p></o:p></span></p>
  </td>
 </tr>
</table>

</div>

<p class=MsoNormal><span style='font-size:12.0pt'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

</div>

</body>

</html>
